package cn.sdc.bugKiller.dao;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import cn.sdc.bugKiller.bean.BugBean;
import cn.sdc.bugKiller.bean.BugProcessBean;
import cn.sdc.bugKiller.bean.BugStatus;

public class BugProcessDaoImpl extends BaseDao {

	public List<BugProcessBean> getAllProcessByBugId(Integer bugId){
		StringBuffer sqlBuffer = getSqlFromFile("searchBugProcess.sql");
		if(sqlBuffer == null || sqlBuffer.toString().isEmpty()){
			return null;
		}
		sqlBuffer.append("and process.bug = ?/*bugId*/");
		sqlBuffer.append("order by process.reply_date asc\n");

		return (List<BugProcessBean>)dbutil.doSelectBeanList(
												BugProcessBean.class,
												sqlBuffer.toString(),
												new Object[]{bugId},
												new Class[]{Integer.class});
		
	}
	
	public int delAllProcessByBugId(Integer bugId){
		String sql = "update m_bug_process set del_flg = '1' where bug = ?/*bugId*/";
		return dbutil.doUpdate(sql,new Object[]{bugId},new Class[]{Integer.class});
	}

	public BugProcessBean insertBean(BugProcessBean bean) {
		String sql = getSqlFromFile("insertBugProcess.sql").toString();
		if(sql == null || sql.isEmpty() || bean == null){
			return null;
		}
		List<Object> params = new ArrayList();
		List<Class> paramtypes = new ArrayList<Class>();
		//bug
		params.add(bean.getBug());
		paramtypes.add(Integer.class);
		//assigner
		params.add(bean.getAssigner());
		paramtypes.add(Integer.class);
		//handler
		params.add(bean.getHandler());
		paramtypes.add(Integer.class);
		//status
		params.add(bean.getStatus());
		paramtypes.add(Integer.class);
		//bugReply
		params.add(bean.getBugReply());
		paramtypes.add(String.class);
		//replyDate
		params.add(new Date());
		paramtypes.add(Date.class);
		
		int result = dbutil.doUpdate(sql,params.toArray(),paramtypes.toArray(new Class[]{}));

		if(result == 1){
			return bean;
		}
		return null;
	}
	
	
	
}
